Sherr アップデート


概要

Macで使える、*.shを放り込むとダブルクリックで使えるようになるアプリ

Sherr.app を私利私欲に基づいてアップデートした。

https://github.com/sassembla/Sherr

いちいちnodeとかshellをコマンドラインから叩いたりとかしてるひとにオススメ。


定期実行とかも可能になった。



機能追加一覧


1.放り込むshellに絶対パスでいろいろ書かないと動かないクソ仕様だった

放り込んだ*.shを、Sherr.appが置いてあるパスで叩いたのと同じ挙動になるように変更。

shellからの呼び出し先指定を気にしないでよくなった。



2.再帰的なshellの呼び出しを行えるようにした

shellを実行するためのマイクロサーバっぽくなった。


Sherr.app起動中、Sherr.appの中のcontinue.shを外部のshellとかから呼ぶことで、

Sherr.appをもう一度叩いた事になるようにした。つまりいくらでもいつでもネストできる。

sh ./Sherr.app/Contents/Resources/continue.sh


たとえば100回実行したい処理があったとして、

ファイルに回数を記録していって、それが100にとどくまで


処理 > カウントアップ > continue.shを呼ぶ


と繰り返えさせる事で、えらい速さで動く。

権限がappに準ずるので、ほとんどユーザー動作として動く感じ。


具体霊

100回ベンチを計りたい処理があったとして、

下記のようなshellを書いて、Sherr.appに喰わせると、高速に100回動いてとまる。

sample100.sh

filename=./record.txt

maxCount=100


if [ -f "${filename}" ]; then

echo "continue."

else

echo "generate file."

touch ${filename}

fi



# The behaviour what you want to benchmark

pwd


# get elapsed time & note it.

passedTime="だが断る"


echo $passedTime >> ${filename}




# count record-line num.

countbase=$(wc -l ${filename})



# trim filename with space.

count=${countbase% *}


if [ ${count} -lt ${maxCount} ]; then

# run next soon. add Token if need.

sh ./Sherr.app/Contents/Resources/continue.sh

fi


で、下記のような嫌がらせみたいなファイルが出来上がっていればOK

record.txt

スクリーンショット 2013-09-13 1.53.18.png